1. Field of the Invention
The present invention relates to a sampling function generator for generating a value of a sampling function used in an interpolating process. In this specification, it is assumed that a case where function values have finite values except zero in a local region and become zero in regions different from the region is called a xe2x80x9clocal support.xe2x80x9d
2. Description of the Prior Art
Conventionally, a method of interpolating data using a sampling function has been well-known as a data interpolating method for obtaining a value between preliminarily given sampling values.
FIG. 14 is an explanatory graph of a sampling function called a sinc function conventionally known. This sinc function is obtained when a Dirac delta function is inverse-Fourier-transformed, and is defined as sin (xcfx80ft)/(xcfx80ft) where the sampling frequency is f. This sinc function becomes one only at a sample point, where t=0, and zero at all other sample points.
FIG. 15 is an explanatory graph of data interpolation by using the sampling function shown in FIG. 14. As shown in FIG. 15, values except each sample point are interpolated by using all the sample values.
In recent digital audio devices, for example, a CD (compact disk) player, etc., the oversampling technology of enhancing the pseudo sampling frequency by interpolating discrete voice data when obtaining continuous analog voice signals from the discrete voice data. To improve the quality of voice in the oversampling technology, it is desirable that interpolation values are continuously set at shorter intervals. However, since there have been no circuits or devices for continuously generating sampling function values, the interpolation values obtained in a convolution operation using a sampling function are also discrete values. When such an interpolation value operation is performed in various digital signal processors (DSP), a value of the above mentioned sampling function has to be computed at a high speed, thereby limiting the process performance. Furthermore, there is a method for performing an interpolating operation on discrete voice data using a digital filter for which the waveform data of the above mentioned sampling function is set as a tap coefficient. However, if the interpolating interval is increased, then the number of tap coefficients becomes larger, thereby enlarging a circuit size.
Thus, to obtain an interpolation value at intervals nearly continuously, there are some problems in process performance and circuit scale. However, if the entire sampling function can be continuously generated, no such problems occur. As a result, a method of continuously generating sampling functions has been strongly demanded.
The present invention has been developed based on the above mentioned problems, and aims at providing a sampling function generator capable of obtaining a continuous output values corresponding to a sampling function.
In the sampling function generator according to the present invention, it is desirable that a B spline function generation unit generates a basic wave form corresponding to a B spline function, and a generation unit generates a signal waveform by adding before or after the basic waveform on time axis an ancillary waveform obtained by attenuating and polarity-inverting the basic waveform. With the above operation, an output value corresponding to a predetermined sampling function can be continuously obtained.
Especially, it is preferable to use a third order B spline function as the above mentioned B spline function, and as the sampling function, it is preferable to use a function, which can be differentiated only once over the whole range. It is considered that it is necessary that various signals existing in the natural world have differentiability because the signals change smoothly. Nevertheless, it is considered that it is not necessary that the differentiability is not always infinite, and that it is possible to sufficiently approximate natural phenomena so long as the signals can be differentiated only once. Although there are many advantages such as smoothly interpolating sampling values, reducing the number of sampling values to be used in an interpolating process, etc., by using a sampling function of the local support that can be differentiated finite times, conventionally, it was considered that a sampling function fulfilling these conditions did not exist. Nevertheless, by the present inventor""s research, a function fulfilling the conditions described above is found.
The sampling function H(t) is defined by xe2x88x92F (t+1/2)/4+F(t)xe2x88x92F(txe2x88x921/2)/4 where the third order B spline function is F(t). That is,by the definition equation, using a signal waveform of a third order B spline function, each signal waveform is generated after attenuating, polarity-inverting, and shifting on a time axis the signal waveform (actually a delay because forwarding on a time axis is not possible), thereby obtaining a signal waveform corresponding to the above mentioned sampling function H(t).
To generate the above mentioned signal waveform of a sampling function, the above mentioned generation unit includes a first inverse amplifying unit for attenuating and polarity-inverting the basic waveform output from a B spline function generation unit, and outputting a first signal waveform; a first delay unit for delaying the basic waveform by a predetermined time and outputting a second signal waveform; and a second inverse amplifying unit and a second delay unit for attenuating, polarity-inverting, and delaying by a predetermined time the basic waveform, and outputting a third signal waveform. It is preferable that the first, second and third signal waveforms are added up in an analog algorithm by a first addition unit to generate a signal waveform. Especially, assuming that the generation time of a B spline function output from the B spline function generation unit is set as 3T, it is preferable that the delay times of the first and second delay units are set as T/2 and T respectively, and the amount of attenuation by the first and second inverse amplifying units is 1/4. By generating each output obtained by these inverse amplifying units and delay units, a signal processing operation can be performed by the definition equation of the above mentioned sampling function H(t), and a sampling function can be continuously generated based on the signal waveform of the third order B spline function.
Since a third order B spline function is used as the above mentioned sampling function H(t), a differentiating process can be performed only once, and the function is a function of a local support whose value converges to 0 at t=xc2x12, thereby satisfying the above mentioned two conditions. Using the function H(t), discrete data can be smoothly interpolated with a smaller amount of computation, thereby performing a high-precision interpolating process.
In addition, the B spline function generation unit includes a convolution operation unit for performing a convolution operation on i-order B spline function waveforms. By inputting to the convolution operation unit a triangular wave which is a signal waveform of the second order B spline function, the signal waveform of a third order B spline function can be easily generated and output.
The B spline function generation unit includes two cascade connected convolution operation units for performing a convolution operation on i-order B spline function waveforms. By inputting a rectangular wave which is the signal waveform of a first order B spline function to the convolution operation unit at the first stage, the signal waveform of the third order B spline function can be easily generated and output.
The B spline function generation unit includes three cascade connected convolution operation units for performing a convolution operation on i-order B spline function waveforms. By inputting a pulse string to the convolution operation unit at the first stage, the signal waveform of the third order B spline function can be easily generated and output.
Practically, it is preferable that the convolution operation unit includes a third delay unit and a third inverse amplifying unit for delaying by a predetermined time and polarity-inverting an input signal waveform, a second addition unit for adding up the delayed and polarity-inverted signal waveform and the input signal waveform in an analog algorithm to generate a signal waveform, and an integration unit for time-integrating the generated signal waveform. By performing the process by each unit, the convolution operation can be performed on i-order B spline function signal waveforms, and the signal waveform of the third order B spline function can be continuously output on a time axis from the integration unit contained in the convolution operation unit at the last stage.